#include "Monster.h"

// 怪兽
Monster::Monster(const Point &p)
{
    GetLocation().Setx(p.Getx());
    GetLocation().Sety(p.Gety());
}

// 第一层怪兽
// 骷髅兵
Bone::Bone(const Point &p) : Monster(p)
{
    SetName("骷髅兵");
    SetHP(1000);
    SetAttack(350);
    SetDefend(200);
    SetSymbol("💀");
    SetExp(50);
    SetGold(50);
    SetDiamond(5);
    SetPower(10);
    SetDodge(10);
}

// 霸王龙
Dinosaur::Dinosaur(const Point &p) : Monster(p)
{
    SetName("霸王龙");
    SetHP(1500);
    SetAttack(400);
    SetDefend(300);
    SetSymbol("🦖");
    SetExp(100);
    SetGold(100);
    SetDiamond(10);
    SetPower(20);
    SetDodge(20);
}

// 食人魔
Orge::Orge(const Point &p) : Monster(p)
{
    SetName("食人魔");
    SetHP(2000);
    SetAttack(500);
    SetDefend(400);
    SetSymbol("👺");
    SetExp(200);
    SetGold(200);
    SetDiamond(20);
    SetPower(30);
    SetDodge(30);
}

// 第二层怪兽
// 小马喽
Monkey::Monkey(const Point &p) : Monster(p)
{
    SetName("小马喽");
    SetHP(1500);
    SetAttack(400);
    SetDefend(300);
    SetSymbol("🐒");
    SetExp(100);
    SetGold(100);
    SetDiamond(10);
    SetPower(20);
    SetDodge(10);
}

// 蜥蜴怪
Lizard::Lizard(const Point &p) : Monster(p)
{
    SetName("蜥蜴怪");
    SetHP(2000);
    SetAttack(400);
    SetDefend(300);
    SetSymbol("🦎");
    SetExp(200);
    SetGold(150);
    SetDiamond(15);
    SetPower(25);
    SetDodge(15);
}

// 狼王
Wolf::Wolf(const Point &p) : Monster(p)
{
    SetName("狼王");
    SetHP(2500);
    SetAttack(450);
    SetDefend(350);
    SetSymbol("🐺");
    SetExp(300);
    SetGold(200);
    SetDiamond(20);
    SetPower(30);
    SetDodge(30);
}

// 第三层怪兽
// 人鱼怪
Fish::Fish(const Point &p) : Monster(p)
{
    SetName("人鱼怪");
    SetHP(2000);
    SetAttack(400);
    SetDefend(300);
    SetSymbol("🧜");
    SetExp(150);
    SetGold(150);
    SetDiamond(15);
    SetPower(25);
    SetDodge(15);
}

// 僵尸
Zombie::Zombie(const Point &p) : Monster(p)
{
    SetName("僵尸");
    SetHP(2500);
    SetAttack(450);
    SetDefend(350);
    SetSymbol("🧟");
    SetExp(200);
    SetGold(200);
    SetDiamond(20);
    SetPower(30);
    SetDodge(20);
}

// 外星人
ET::ET(const Point &p) : Monster(p)
{
    SetName("外星人");
    SetHP(3000);
    SetAttack(500);
    SetDefend(300);
    SetSymbol("👽");
    SetExp(500);
    SetGold(200);
    SetDiamond(20);
    SetPower(40);
    SetDodge(40);
}
